home *** CD-ROM | disk | FTP | other *** search
- /*
- File: Trnsform.cpp
-
- Contains: Macintosh implementation of ODTransform
-
- Owned by: Jens Alfke
-
- Copyright: © 1994 Apple Computer, Inc. All rights reserved.
-
- Change History (most recent first):
-
- <8> 10/8/95 TJ Fixes Recomended by Refball
- <7> 12/5/94 jpa Fixes from code review. [1203923]
- <6> 8/17/94 jpa Function prefixes. [1181512]
- <5> 8/8/94 jpa Updated after base class API change
- [1179574]
- <4> 7/26/94 eeh ODQDPoint -> Point
- <3> 7/15/94 jpa SetQDOffset now takes a Point*.
- <2> 6/30/94 jpa Filled in methods.
- <1> 6/15/94 jpa first checked in
-
- To Do:
- */
-
-
- #define ODTransform_Class_Source
- #include <Trnsform.xih>
-
- #ifndef _LINEOPS_
- #include <LineOps.h> /* For kFixedEpsilon */
- #endif
-
-
- static ODBoolean AlmostInteger( ODFixed n )
- {
- ODSShort f = (ODSShort)n; // f is fractional part of n
- return f<=(ODSShort)kFixedEpsilon && f>=-(ODSShort)kFixedEpsilon;
- }
-
-
- SOM_Scope void SOMLINK ODTransform__InitTransform(ODTransform *somSelf, Environment *ev)
- {
- /* ODTransformData *somThis = ODTransformGetData(somSelf); */
- ODTransformMethodDebug("ODTransform","InitTransform");
-
- SOM_TRY
- somSelf->InitBaseTransform(ev);
- SOM_CATCH_ALL
- SOM_ENDTRY
- }
-
- SOM_Scope ODBoolean SOMLINK ODTransform__IsQDOffset(ODTransform *somSelf, Environment *ev)
- {
- /* ODTransformData *somThis = ODTransformGetData(somSelf); */
- ODTransformMethodDebug("ODTransform","IsQDOffset");
-
- SOM_TRY
-
- if( somSelf->GetType(ev) <= kODTranslateXform ) {
- ODPoint offset;
- somSelf->GetOffset(ev, &offset);
- return AlmostInteger(offset.x) &&
- AlmostInteger(offset.y);
- } else
- return kODFalse;
-
- SOM_CATCH_ALL
- SOM_ENDTRY
- return kODFalse;
- }
-
-
- SOM_Scope Point SOMLINK ODTransform__GetQDOffset(ODTransform *somSelf, Environment *ev)
- {
- /* ODTransformData *somThis = ODTransformGetData(somSelf); */
- ODTransformMethodDebug("ODTransform","GetQDOffset");
-
- ODPoint pt;
-
- SOM_TRY
- somSelf->GetOffset(ev,&pt);
- SOM_CATCH_ALL
- SOM_ENDTRY
-
- return pt.AsQDPoint();
- }
-
-
-
- SOM_Scope ODTransform* SOMLINK ODTransform__SetQDOffset(ODTransform *somSelf, Environment *ev,
- Point* point)
- {
- /* ODTransformData *somThis = ODTransformGetData(somSelf); */
- ODTransformMethodDebug("ODTransform","SetQDOffset");
-
- SOM_TRY
-
- ODPoint offset( *point );
- somSelf->SetOffset(ev,&offset);
-
- SOM_CATCH_ALL
- SOM_ENDTRY
- return somSelf;
- }
-